Заметьте, что большую часть текстов программ вы спокойно можете копировать в буфер обмена, а затем в отдельный файл и компилировать. Но такая операция может быть проделана не со всеми файлами, некоторые из них содержат специальные символы, и для корректной компиляции вам потребуется взять текст программы из архива {104 Kb}. Будьте внимательны! В некоторых программах вероятна "пропажа" кода из-за того, что он отображается в html и возможны комбинации, интерпретируемые как теги html. Все, кому необходимы комментарии к текстам программ, пишите на мыло. Тексты программ на ассемблере (x86, DOS) TURBOTPL.RAR - turbo.tpl, который позволяет правильно работать программам на современных компьютерах (т.е. не вызывается ошибка "Деление на ноль" - "Error 200: Divizion by zero"). Плюс два файла конфигурации Борланд Паскаля 7.0 (Borland Pascal 7.0) bp.tp и night.tp, один из них оригинальный, другой задаёт "ночную" раскраску для среды программирования. Разрабатывал специально для себя, и считаю, что получилось довольно успешно. aboutpc.pas - Программа определения конфигурации системы компьютеров XT и AT, довольно старая; на основе примера из книги Фаронова В. Э. fullmemo.pas - Программа для создания файлов-дампов памяти (*.mem) на жёстком диске с адресами от [$0000:$0000] до [$F000:$FFFF] intrpt.pas - Создаёт файлы векторов перерывания (содержащие дампы памяти по 4096 байт с адресов, указанных в ненулевых векторах прерывания). portout.pas - Программа, сканирующая порты устройств компьютера и выводящая на экран осциллограмму числа изменяющихся во времени. Очень любопытно, особенно если во время её работы понажимать клавиши на клавиатуре, подвигать мышой, открыть/закрыть CD-ROM. fileout.pas - Вывод файлов в графическом режиме. Включает ассемблерные вставки для работы в графическом режиме 640x480 (например, рисование точки). oscfile.pas - Выводит файл в графическом режиме в виде осциллограммы. detgrfil.pas - Программа выяснения информации о возможностях видеоадаптера: какие режимы и как поддерживает. Ассемблерные вставки и подробная расшифровка всей информации. graphdet.pas - Выдаёт полную информацию о графических режимах, совершенно аналогична предыдущей, но информация выводится на экран в текстовом режиме. genpwds.pas - Программа для создания списка строчек - комбинаций символов двух первоначальных строк; сперва предназначалась для генерирования паролей (по двум версиям примерно известных паролей). modemss.pas - Программа разбора статистики подключений к Интернет с помощью модема (по логам, которые ведутся в системе). bmpcr.pas - Программа преобразования *.htm/*.html-файлов, созданных программой bmp2htm, обратно в BitMaP-файлы. runcr.pas - Программа для создания .bat-файлов для запуска файлов с нужной командной стокой. coder.pas - Программа, совершающая некоторые преобразования *.htm-файлов, подготовленных программой bmp2htm.exe. bmpmul.pas - Текст программы, производящей по двум *.BMP-файлам серии переходных "кадров"; "плавный" переход от одного к другому. cpifxtr.pas - Текст программы для извлечения растровых *.fnt-шрифтов (DOS) из *.cpi-файлов. diconv.pas - Текст программы конвертации файлов-образов дискет (3.5'', 1.4 Mb) между собой: DST/IMG. Формат DST первоначально использовался мной, а IMG-формат - стандарт. dcdbudun.pas - Программа расшифровки файла budun.dat, который прилагается к программе "budun.exe" ("Выпивка"). diskout~.pas - Программа для работы с дискетами 3.5''/1440 Kb; позволяет просматривать содержимое дискеты в тесктовом и графическом режимах (несовершенный просмотр), сохранять содержимое дискеты в файл на диск и восстанавливать его по файлу-образу (поддерживаются два формата: IMG (стандартный, наиболее быстрый) и DST). Есть возможность проверки дискеты на исправность с выводом номеров неисправных секторов. Использована информация из книги В. Э. Фаронова "Turbo Pascal 7.0". hhm.pas - Программа генерации *.htm-файла, содержащего ссылки на файлы, по имеющимся ссылкам. jje.pas - Программа для извлечения JPEG/JPG-файлов из других файлов. Имеются определённые ограничения на число вхождений в файл, которые можно преодолеть путём многократного применения основной программы к отдельным частям большого исходного файла (идея будущего). fed.pas - Редактор растровых ДОСовских шрифтов (*.fnt). Программа, которой уделил много внимания. Имеется возможность редактировать шрифты в памяти компьютера (режим /MEMO). Редактирование производится в графическом режиме, более-менее понятный и удобный интерфейс. Пример установки прерывания (1Ch) в программе на Паскале (асм. вставка). Простейшие и самые необходимые функции для обработки и редактирования шрифтов. Возможность экспорта и импорта с использованием однобитных *.BMP-файлов, соответствующих размерам шрифта. fontconv.pas - Усовершенствованная программа Фаронова Ф. Э. для конвертации размеров растровых шрифтов для ДОС (первоначально конвертировала шрифт 8x16 в 8x19, эта версия программы позволяет двумя способами конвертировать шрифты любого размера в пределах от 1 до 64). fontinfo.pas - Незавершённая программа вывода стат. информации о растровом шрифте 8x16 в файл. fontview.pas - Программа просмотра растрового шрифта 8x16 в текстовом режиме (имеется процедура на ассемблере установки шрифта). На мой взгляд удобнее просматривать *.fnt-файлы с помощью программы fed.exe (с именем файла в командной строке). savefont.pas - Программа сохранения в *.fnt-файле текущего растрового шрифта ДОС. setfont.pas - Устанавливает шрифт для текстового режима из файла командной строки. Предыдущий шрифт будет восстановлен после смены видеорежима. svcurfnt.pas - Сохраняется текущий шрифт посредством графического режима. keybbuff.pas - Изображает содержимое буфера клавиатуры. keys.pas - Печатает ASCII-коды символов нажатых клавиш клавиатуры. scancode.pas - Осуществляет вывод скан-кодов нажатых клавиш клавиатуры. ufd.pas - Перекодирует UNICODE из файла, если обнаруживает, в DOS (CP-866). Результат выводится на экран (с задержкой), либо в файл. chrview.pas - Текст программы просмотра *.CHR-шрифтов. Используется модуль В. Э. Фаронова "F_GrText". spiral.pas - Очень красивые и интересные эффекты при рисовании спиралей. si_.pas - Рисуется что-то вроде интегрального синуса. string.pas - Программа, изображающая частичную сумму рядов Фурье, представляющую собой струну. lissague.pas - Программа рисования фигур Лиссажу. apf.pas - Программа аппроксимации функций методом наименьших квадратов. Включает в себя модуль решения системы линейных уравнений методом Гаусса. appro.pas - Программа аппроксимации функций методом наименьших квадратов. Включает в себя модуль решения системы линейных уравнений методом Гаусса. Одна из версий предыдущей программы. approcsh.pas - Программа аппроксимации функций методом наименьших квадратов. Включает в себя модуль решения системы линейных уравнений методом Гаусса. Ещё одна модификация. madecnst.pas - Попытка программным путём рассчитать постоянную Маделунга для кристалла поваренной соли NaCl. Незавершённая идея. Надо бы заняться и закончить. madelung.pas - Рисует на экране кристаллическую решётку NaCl для расчёта постоянной Маделунга. difur_rk.pas - Программа для решения дифференциальных уравнений методом Рунге-Кутта. Графический режим. difur_pp.pas - Дополнение к программе для решения дифференциальных уравнений методами Рунге-Кутта. Работает в графическом режиме. Рисует графики функции f(t, x) = z. rk_difur.pas - Ещё одна версия программы "Решение дифференциальных уравнений методами Рунге-Кутта". digintaa.pas - Вычисление интегралов численными методами. Примеры использования метода трапеций, метода Симпсона и метода Монте-Карло. Есть пример ассемблерной вставки для работы с FPU. diginteg.pas - Версия предыдущей программы с дополнениями: тестирование скорости работы FPU, счётчики времени, выполненные в виде ассемблерных вставок. modrandp.pas - Моделирование случайных процессов. Расчёт хи-квадрат распределения и прочих характеристик случайного распределения. Не самый плохой интерфейс, даже, может быть, наоборот. Работает мышь, левая и правая кнопки. ph_portr.pas - Программа, рисующая фазовый портрет решения системы дифференциальных уравнений методом Рунге-Кутта. Точку можно задавать с помощью мыши, либо вручную. Позволительно менять масштаб и другие параметры в ходе работы программы. phprt2.pas - Программа, рисующая фазовый портрет решения системы дифференциальных уравнений методом Рунге-Кутта. Версия той программы, что выше. fft.pas - Программа, которая предполагалась для быстрого Фурье-преобразования. Незавершена, но зато включает пример, показывающий, как сделать так, чтобы EXE-программе не требовался файл EGAVGA.BGI для работы, к примеру, на других компьютерах (этот файл подключается к исполняемому файлу на этапе компиляции). fourier.pas - Программа, изображающая частичную сумму рядов Фурье, с примерами некоторых рядов. frtrans.pas - Одна из программ, посвящённых рядам Фурье. trigon.pas - Позволяет определить положение точки относительно треугольника. demotrig.pas - Определяет положение точки относительно треугольника в графическом режиме. Мышкой можно менять положение точки и положение вершин треугольника. newgauss.pas - Решение системы линейных уравнений методом Гаусса. balloons.pas - Рисует несколько воздушных шаров на синем фоне с "травой" и "сияющим" солцем. baln_.pas - Рисует несколько воздушных шаров на синем фоне с "травой" и "сияющим" солцем. Версия предыдущей программы. game.pas - Заготовка для игры в текстовом режиме, но цветной и с графикой. Всевозможные ассемблерные вставки, отвечающие за работу с графикой, спецэффекты, прерывания, собственные обработчики прерываний. Конечно, хотелось бы когда-нибудь сделать её, посмотреть, что из этого выйдет. Но пока никак. lvobedit.pas - Level Editor, точнее, тоже заготовка для редактора уровней и персонажей для игры, листинг кода которой находится чуть выше. Включены коды курсоров для мыши и прочие всякости. mgame.pas - Текст модуль для game.exe, в котором планировалось хранить отконвертированные звуки, музыку для игры. beeper.pas - Программа, выдающая звук через встроенный динамик компьютера - "спикер". Используются процедуры на ассемблере, взятые из модуля CRT. cdrom.pas - Текст незавершённой программы для обращения к CD-ROM через мультиплексорное прерывание. Содержит текст нескольких ассемблерных вставок и список мультиплексорных функций (с пояснениями IDA 3.75). dsktdir.pas - Программа, создающая множество вложенных директорий (каталогов) на дискете со случайными именами. face.pas - Программа, рисующая движущееся лицо человека в текстовом режиме. Включает подпрограммы для работы с мышью, вывода точек на экран (в ассемблерных вставках), а также подпрограммы рисования линий и дуг в текстовом режиме. progface.pas - Модуль, содержащий различные процедуры и функции для рисования в текстовом режиме. ;) В т.ч. рисующий окна, меню и т.п. fpuread.pas - Программа, видимо, тестирования FPU; использованы ассемблерные вставки. musgrabb.pas - Планировалось, что программа, "сидя" на прерывании, должна "снимать" частоту, которую играет спикер, задаваемую другими программами, и сохранять её в файл. То есть сохранять в файле мелодию, проигрываемую другими программами. Ввиду того, что не нашёл, откуда взять значение делителя частоты, посылаемого испытываемой программой, ничего не получилось. Пока нет никаких идей. musicshu.pas - Модуль для работы с музыкальными файлами, что проигрываются через встроенный динамик (модуль используется в программе mymusic.exe). Включает средства по компиляции, обработке, воспроизведению звука и проч. muswri.pas - Программа для записи музыки с клавиатуры; в дальнейшем получаемый файл может воспроизводиться программой mymusic.exe. muswri2.pas - Версия предыдущей программы. Обе версии неполные, незавершённые. mymusic.pas - Программа воспроизведения через динамик (спикер) музыки, сохраняемой в *.mzc и *.mzp-файлах. Позволяет конвертировать эти форматы друг в друга, создавать исполнимые *.com-файлы (пока ещё не осуществлена идея переделки алгоритма для этих файлов, т.е. хотелось бы, чтобы звук выводился не за счёт прерываний BIOS, а на основе вызова прерывания 1Ch). Имеется довольно неплохой интерфейс. :) %) parrot.pas - Програма "П О П У Г А Й". Своего рода "чат с компьютером". К паскалевскому файлу не прилагается словарь. Он имеется в версии с исполнимым файлом. brownmov.pas - Программа имитации броуновского движения. screensv.pas - Вроде бы только идея... Идея хрнителя экрана, где произвольным образом двигаются "клетки", которые не могут быть оторваны друг от друга. scrsav.pas - Пять версий одного и того же "хранителя экрана"; в начале предполагалось, что будут использоваться импульсы и массы частиц, но в то время, когда писал программу (11-ый класс), не всё получилось удачно. Не исправлял ничего. Просто любопытно. Первая программа из серии. scrsav_x.pas - Версия номер два. scrsav2.pas - Третья модификация. scrsav3.pas - Четвёртая программа. scrsaver.pas - Пятый "скринсэйвер". txeffect.pas - Модуль для работы в текстовом режиме. Название должно говорить само за себя. voicetex.pas - Этот и два следующих файла содержат структуру заголовка *.wav-файлов, но ничего не делают, кроме демонстрации возможностей модуля progface[.pas]. vtwm.pas - Вторая такая. vtxdemo.pas - И третья программа. gd_exmpl.pas - Протейший пример использования графики. prob_prn.pas - Программа для печати на матричном принтере как на печатной машинке. Самое простое, что можно было сделать. :) mathprcs.pas - Ещё одна хорошая и незавершённая идея: программа, позволяющая выводить графики всевозможных функций, решений некоторых диф. уравнений методами Рунге-Кутта, причём вводящиеся функции должны компилироваться в коды процессора (FPU, в основном), помещаться в определённое место памяти в виде функции (функций), которая (которые) в дальнейшем вызываются для вычисления значения в определённой точке. Многое уже исполнено: написаны идентификаторы команд процессора и соответствующие мнемонике коды, что в дальнейшем может быть использовано для компиляции; написаны некоторые функции, аналогов которым нет в процессоре. Есть над чем подумать. midiprog.pas - Вообще программа, которая должна бы выводить MIDI-файлы через звуковую карту. Пока не очень. Соответствующие вставки ассемблерных кодов... svga_gr.pas - Набор процедур и функций для работы с SVGA-режимами (асм. вставки). В программе рисуется что-то похожее на "настраивающийся телевизор". timeosci.pas - Временная осциллограмма чего-то. tree.pas - Рисует "дерево" из отрезков. simnumb.pas - Программа поиска симметричных чисел, которые являются частными от деления чисел, состоящих из 10 неповторяющихся цифр, и 9. В 1964 году было известно три таких числа ("Детская энциклопедия", т.2, стр. 326 и стр. 373). Теперь (их полное число) - 660. sim_nmb.pdf - результат работы программы simnumb.pas/simnumb.exe Все эти файлы в одном архиве {104 Kb} diwr.pas - Текст прекрасной программы для записи дискет из файлов посекторно. О программах: желательно, чтобы вы, если вдруг используете тексты программ, давали бы ссылочку, откуда их брали, или первичное авторство: Felix!/Shurik... Был бы очень признателен, если вы решили доделать какие-то программы и сделали это, присылали бы результаты (информацию, что удалось изменить, а то и программы или листинги программ). |
|